home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Tool Chest / Development Tools & Languages / Macintosh Common Lisp Related / 2.01 sources / Library-2.01 / Interfaces / PPCTOOLBOX.lisp < prev    next >
Encoding:
Text File  |  1993-09-16  |  14.0 KB  |  475 lines  |  [TEXT/CCL2]

  1.  
  2. (in-package :traps)             ; 
  3. ; Created: Sunday, January 6, 1991 at 10:55 PM
  4. ;     PPCToolBox.p
  5. ;     Pascal Interface to the Macintosh Libraries
  6. ;         Copyright Apple Computer, Inc.    1989-1990
  7. ;         All rights reserved
  8.  
  9. ;;;;;;;;;;;;;
  10. ;
  11. ; Modification History
  12. ;
  13. ; 04/28/93 mwp Release
  14. ; 04/17/92 bill Flavors Technology's fixes to _StartSecureSession & _GetDefaultUser
  15. ;-------------- 2.0
  16. ; 08/23/91 bill remove bogus return specs in call forms
  17. ;               Take a stab at _deleteuseridentity, _getdefaultuser, & _startsecuresession
  18.  
  19. ;
  20.  
  21. ; $IFC UNDEFINED UsingIncludes
  22. ; $SETC UsingIncludes := 0
  23. ; $ENDC
  24.  
  25. ; $IFC NOT UsingIncludes
  26.  
  27. ; $ENDC
  28.  
  29. ; $IFC UNDEFINED UsingPPCToolBox
  30. ; $SETC UsingPPCToolBox := 1
  31.  
  32. ; $I+
  33. ; $SETC PPCToolBoxIncludes := UsingIncludes
  34. ; $SETC UsingIncludes := 1
  35. ; $IFC UNDEFINED UsingAppleTalk
  36.  
  37. (require-interface 'APPLETALK)  ; $I $$Shell(PInterfaces)AppleTalk.p
  38. ; $ENDC
  39. ; $IFC UNDEFINED UsingMemory
  40.  
  41. (require-interface 'MEMORY)     ; $I $$Shell(PInterfaces)Memory.p
  42. ; $ENDC
  43. ; $IFC UNDEFINED UsingTypes
  44.  
  45. (require-interface 'TYPES)      ; $I $$Shell(PInterfaces)Types.p
  46. ; $ENDC
  47. ; $SETC UsingIncludes := PPCToolBoxIncludes
  48.  
  49. (def-mactype :ppcservicetype (find-mactype :signed-byte))
  50.  
  51. ;   service Type  
  52. (defconstant $ppcServiceRealTime 1)
  53.  
  54. (def-mactype :ppclocationkind (find-mactype :signed-integer))
  55.  
  56. ;  lookup Type 
  57. (defconstant $ppcNoLocation 0)  ;  There is no PPCLocName 
  58. (defconstant $ppcNBPLocation 1) ;  Use AppleTalk NBP      
  59. (defconstant $ppcNBPTypeLocation 2);  Used for specifying a location name type during PPCOpen only 
  60.  
  61. (def-mactype :ppcportkinds (find-mactype :signed-integer))
  62.  
  63. ;  port Types 
  64.  
  65. (defconstant $ppcByCreatorAndType 1);  PortType is specified as colloquial Mac creator and type 
  66. (defconstant $ppcByString 2)    ;  Port Type is in pascal string format 
  67.  
  68. (def-mactype :ppcsessionorigin (find-mactype :signed-byte));  Values returned for request field in PPCInform call 
  69.  
  70. ;  Values returned for requestType field in PPCInform call 
  71. (defconstant $ppcLocalOrigin 1) ;  session originated from this machine 
  72. (defconstant $ppcRemoteOrigin 2);  session originated from remote machine 
  73.  
  74. (def-mactype :ppcportrefnum (find-mactype :signed-integer))
  75. (def-mactype :ppcsessrefnum (find-mactype :signed-long))
  76.  
  77. (def-mactype :ppcportptr (find-mactype :pointer))
  78. (defrecord PPCPortRec 
  79.    (nameScript :signed-integer) ;  script of name 
  80.    (name (:string 32))          ;  name of port as seen in browser 
  81.    (portKindSelector :signed-integer);  which variant 
  82.    (:variant 
  83.  
  84.       ((portTypeStr (:string 32)))
  85.  
  86.       ((portCreator :ostype)
  87.       (portType :ostype))
  88.       ))
  89.  
  90. (def-mactype :locationnameptr (find-mactype :pointer))
  91. (defrecord LocationNameRec 
  92.    (locationKindSelector :signed-integer);  which variant 
  93.    (:variant 
  94.  
  95.       ((nbpEntity :entityname)) ;  NBP name entity 
  96.  
  97.       ((nbpType (:string 32)))  ;  just the NBP type string, for PPCOpen 
  98.       ))
  99.  
  100. (def-mactype :portinfoptr (find-mactype :pointer))
  101. (defrecord PortInfoRec 
  102.    (filler1 :signed-byte)
  103.    (authRequired :boolean)
  104.    (name :ppcportrec)
  105.    )
  106.  
  107. (def-mactype :portinfoarrayptr (find-mactype :pointer))
  108. (defrecord PortInfoArray (array (array :portinforec 1)))
  109. (def-mactype :ppcfilterprocptr (find-mactype :pointer))
  110. ; Procedures you will need to write 
  111. ;  ex: void MyCompletionRoutine(PPCParamBlkPtr pb) 
  112. ;  ex: pascal Boolean    MyPortFilter(LocationNamePtr locationName, PortInfoPtr 
  113. ;  thePortInfo)
  114.  
  115. (def-mactype :ppccompprocptr (find-mactype :pointer))
  116.  
  117. (def-mactype :ppcopenpbptr (find-mactype :pointer))
  118. (defrecord PPCOpenPBRec 
  119.    (qLink :pointer)
  120.    (csCode :signed-integer)
  121.    (intUse :signed-integer)
  122.    (intUsePtr :pointer)
  123.    (ioCompletion :pointer)
  124.    (ioResult :signed-integer)
  125.    (reserved (:array :signed-long 5));  reserved 
  126.    (portRefNum :signed-integer) ;  Port Reference 
  127.    (filler1 :signed-long)
  128.    (serviceType :signed-byte)
  129.    (resFlag :signed-byte)
  130.    (portName (:pointer :ppcportrec));  PortName for PPC 
  131.    (locationName (:pointer :locationnamerec))
  132.    (networkVisible :boolean)
  133.    (nbpRegistered :boolean)
  134.    )
  135.  
  136. (def-mactype :ppcinformpbptr (find-mactype :pointer))
  137. (defrecord PPCInformPBRec 
  138.    (qLink :pointer)
  139.    (csCode :signed-integer)
  140.    (intUse :signed-integer)
  141.    (intUsePtr :pointer)
  142.    (ioCompletion :pointer)
  143.    (ioResult :signed-integer)
  144.    (reserved (:array :signed-long 5))
  145.    (portRefNum :signed-integer)
  146.    (sessRefNum :signed-long)
  147.    (serviceType :signed-byte)
  148.    (autoAccept :boolean)
  149.    (portName (:pointer :ppcportrec))
  150.    (locationName (:pointer :locationnamerec))
  151.    (userName (:pointer (:string 255)))
  152.    (userData :signed-long)
  153.    (requestType :signed-byte)
  154.    )
  155.  
  156. (def-mactype :ppcstartpbptr (find-mactype :pointer))
  157. (defrecord PPCStartPBRec 
  158.    (qLink :pointer)
  159.    (csCode :signed-integer)
  160.    (intUse :signed-integer)
  161.    (intUsePtr :pointer)
  162.    (ioCompletion :pointer)
  163.    (ioResult :signed-integer)
  164.    (reserved (:array :signed-long 5))
  165.    (portRefNum :signed-integer)
  166.    (sessRefNum :signed-long)
  167.    (serviceType :signed-byte)
  168.    (resFlag :signed-byte)
  169.    (portName (:pointer :ppcportrec))
  170.    (locationName (:pointer :locationnamerec))
  171.    (rejectInfo :signed-long)
  172.    (userData :signed-long)
  173.    (userRefNum :signed-long)
  174.    )
  175.  
  176. (def-mactype :ppcacceptpbptr (find-mactype :pointer))
  177. (defrecord PPCAcceptPBRec 
  178.    (qLink :pointer)
  179.    (csCode :signed-integer)
  180.    (intUse :signed-integer)
  181.    (intUsePtr :pointer)
  182.    (ioCompletion :pointer)
  183.    (ioResult :signed-integer)
  184.    (reserved (:array :signed-long 5))
  185.    (filler1 :signed-integer)
  186.    (sessRefNum :signed-long)
  187.    )
  188.  
  189. (def-mactype :ppcrejectpbptr (find-mactype :pointer))
  190. (defrecord PPCRejectPBRec 
  191.    (qLink :pointer)
  192.    (csCode :signed-integer)
  193.    (intUse :signed-integer)
  194.    (intUsePtr :pointer)
  195.    (ioCompletion :pointer)
  196.    (ioResult :signed-integer)
  197.    (reserved (:array :signed-long 5))
  198.    (filler1 :signed-integer)
  199.    (sessRefNum :signed-long)
  200.    (filler2 :signed-integer)
  201.    (filler3 :signed-long)
  202.    (filler4 :signed-long)
  203.    (rejectInfo :signed-long)
  204.    )
  205.  
  206. (def-mactype :ppcwritepbptr (find-mactype :pointer))
  207. (defrecord PPCWritePBRec 
  208.    (qLink :pointer)
  209.    (csCode :signed-integer)
  210.    (intUse :signed-integer)
  211.    (intUsePtr :pointer)
  212.    (ioCompletion :pointer)
  213.    (ioResult :signed-integer)
  214.    (reserved (:array :signed-long 5))
  215.    (filler1 :signed-integer)
  216.    (sessRefNum :signed-long)
  217.    (bufferLength :signed-long)
  218.    (actualLength :signed-long)
  219.    (bufferPtr :pointer)
  220.    (more :boolean)
  221.    (filler2 :signed-byte)
  222.    (userData :signed-long)
  223.    (blockCreator :ostype)
  224.    (blockType :ostype)
  225.    )
  226.  
  227. (def-mactype :ppcreadpbptr (find-mactype :pointer))
  228. (defrecord PPCReadPBRec 
  229.    (qLink :pointer)
  230.    (csCode :signed-integer)
  231.    (intUse :signed-integer)
  232.    (intUsePtr :pointer)
  233.    (ioCompletion :pointer)
  234.    (ioResult :signed-integer)
  235.    (reserved (:array :signed-long 5))
  236.    (filler1 :signed-integer)
  237.    (sessRefNum :signed-long)
  238.    (bufferLength :signed-long)
  239.    (actualLength :signed-long)
  240.    (bufferPtr :pointer)
  241.    (more :boolean)
  242.    (filler2 :signed-byte)
  243.    (userData :signed-long)
  244.    (blockCreator :ostype)
  245.    (blockType :ostype)
  246.    )
  247.  
  248. (def-mactype :ppcendpbptr (find-mactype :pointer))
  249. (defrecord PPCEndPBRec 
  250.    (qLink :pointer)
  251.    (csCode :signed-integer)
  252.    (intUse :signed-integer)
  253.    (intUsePtr :pointer)
  254.    (ioCompletion :pointer)
  255.    (ioResult :signed-integer)
  256.    (reserved (:array :signed-long 5))
  257.    (filler1 :signed-integer)
  258.    (sessRefNum :signed-long)
  259.    )
  260.  
  261. (def-mactype :ppcclosepbptr (find-mactype :pointer))
  262. (defrecord PPCClosePBRec 
  263.    (qLink :pointer)
  264.    (csCode :signed-integer)
  265.    (intUse :signed-integer)
  266.    (intUsePtr :pointer)
  267.    (ioCompletion :pointer)
  268.    (ioResult :signed-integer)
  269.    (reserved (:array :signed-long 5))
  270.    (portRefNum :signed-integer)
  271.    )
  272.  
  273. (def-mactype :ipclistportspbptr (find-mactype :pointer))
  274. (defrecord IPCListPortsPBRec 
  275.    (qLink :pointer)
  276.    (csCode :signed-integer)
  277.    (intUse :signed-integer)
  278.    (intUsePtr :pointer)
  279.    (ioCompletion :pointer)
  280.    (ioResult :signed-integer)
  281.    (reserved (:array :signed-long 5))
  282.    (filler1 :signed-integer)
  283.    (startIndex :signed-integer)
  284.    (requestCount :signed-integer)
  285.    (actualCount :signed-integer)
  286.    (portName (:pointer :ppcportrec))
  287.    (locationName (:pointer :locationnamerec))
  288.    (bufferPtr (:pointer :portinfoarray))
  289.    )
  290.  
  291. (def-mactype :ppcparamblockptr (find-mactype :pointer))
  292. (defrecord PPCParamBlockRec 
  293.    (:variant 
  294.       ((openParam :ppcopenpbrec))
  295.       ((informParam :ppcinformpbrec))
  296.       ((startParam :ppcstartpbrec))
  297.       ((acceptParam :ppcacceptpbrec))
  298.       ((rejectParam :ppcrejectpbrec))
  299.       ((writeParam :ppcwritepbrec))
  300.       ((readParam :ppcreadpbrec))
  301.       ((endParam :ppcendpbrec))
  302.       ((closeParam :ppcclosepbrec))
  303.       ((listPortsParam :ipclistportspbrec))
  304.       ))
  305.  
  306. ;   PPC Calling Conventions  
  307.  
  308. (deftrap _ppcinit nil
  309.    (:d0 :signed-integer)
  310.    (:register-trap #xA0DD :d0 0))
  311.  
  312. (deftrap _ppcopen ((pb (:pointer :ppcopenpbrec)))
  313.    (:d0 :signed-integer)
  314.    (:register-trap #xA0DD :a0 pb :d0 1))
  315.  
  316. (deftrap _ppcopensync ((pb (:pointer :ppcopenpbrec)))
  317.    (:d0 :signed-integer)
  318.    (:register-trap #xA0DD :a0 pb :d0 1))
  319.  
  320. (deftrap _ppcopenasync ((pb (:pointer :ppcopenpbrec)))
  321.    (:d0 :signed-integer)
  322.    (:register-trap #xA4DD :a0 pb :d0 1))
  323.  
  324. (deftrap _ppcinform ((pb (:pointer :ppcinformpbrec)))
  325.    (:d0 :signed-integer)
  326.    (:register-trap #xA0DD :a0 pb :d0 3))
  327.  
  328. (deftrap _ppcinformsync ((pb (:pointer :ppcinformpbrec)))
  329.    (:d0 :signed-integer)
  330.    (:register-trap #xA0DD :a0 pb :d0 3))
  331.  
  332. (deftrap _ppcinformasync ((pb (:pointer :ppcinformpbrec)))
  333.    (:d0 :signed-integer)
  334.    (:register-trap #xA4DD :a0 pb :d0 3))
  335.  
  336. (deftrap _ppcstart ((pb (:pointer :ppcstartpbrec)))
  337.    (:d0 :signed-integer)
  338.    (:register-trap #xA0DD :a0 pb :d0 2))
  339.  
  340. (deftrap _ppcstartsync ((pb (:pointer :ppcstartpbrec)))
  341.    (:d0 :signed-integer)
  342.    (:register-trap #xA0DD :a0 pb :d0 2))
  343.  
  344. (deftrap _ppcstartasync ((pb (:pointer :ppcstartpbrec)))
  345.    (:d0 :signed-integer)
  346.    (:register-trap #xA4DD :a0 pb :d0 2))
  347.  
  348. (deftrap _ppcaccept ((pb (:pointer :ppcacceptpbrec)))
  349.    (:d0 :signed-integer)
  350.    (:register-trap #xA0DD :a0 pb :d0 4))
  351.  
  352. (deftrap _ppcacceptsync ((pb (:pointer :ppcacceptpbrec)))
  353.    (:d0 :signed-integer)
  354.    (:register-trap #xA0DD :a0 pb :d0 4))
  355.  
  356. (deftrap _ppcacceptasync ((pb (:pointer :ppcacceptpbrec)))
  357.    (:d0 :signed-integer)
  358.    (:register-trap #xA4DD :a0 pb :d0 4))
  359.  
  360. (deftrap _ppcreject ((pb (:pointer :ppcrejectpbrec)))
  361.    (:d0 :signed-integer)
  362.    (:register-trap #xA0DD :a0 pb :d0 5))
  363.  
  364. (deftrap _ppcrejectsync ((pb (:pointer :ppcrejectpbrec)))
  365.    (:d0 :signed-integer)
  366.    (:register-trap #xA0DD :a0 pb :d0 5))
  367.  
  368. (deftrap _ppcrejectasync ((pb (:pointer :ppcrejectpbrec)))
  369.    (:d0 :signed-integer)
  370.    (:register-trap #xA4DD :a0 pb :d0 5))
  371.  
  372. (deftrap _ppcwrite ((pb (:pointer :ppcwritepbrec)))
  373.    (:d0 :signed-integer)
  374.    (:register-trap #xA0DD :a0 pb :d0 6))
  375.  
  376. (deftrap _ppcwritesync ((pb (:pointer :ppcwritepbrec)))
  377.    (:d0 :signed-integer)
  378.    (:register-trap #xA0DD :a0 pb :d0 6))
  379.  
  380. (deftrap _ppcwriteasync ((pb (:pointer :ppcwritepbrec)))
  381.    (:d0 :signed-integer)
  382.    (:register-trap #xA4DD :a0 pb :d0 6))
  383.  
  384. (deftrap _ppcread ((pb (:pointer :ppcreadpbrec)))
  385.    (:d0 :signed-integer)
  386.    (:register-trap #xA0DD :a0 pb :d0 7))
  387.  
  388. (deftrap _ppcreadsync ((pb (:pointer :ppcreadpbrec)))
  389.    (:d0 :signed-integer)
  390.    (:register-trap #xA0DD :a0 pb :d0 7))
  391.  
  392. (deftrap _ppcreadasync ((pb (:pointer :ppcreadpbrec)))
  393.    (:d0 :signed-integer)
  394.    (:register-trap #xA4DD :a0 pb :d0 7))
  395.  
  396. (deftrap _ppcend ((pb (:pointer :ppcendpbrec)))
  397.    (:d0 :signed-integer)
  398.    (:register-trap #xA0DD :a0 pb :d0 8))
  399.  
  400. (deftrap _ppcendsync ((pb (:pointer :ppcendpbrec)))
  401.    (:d0 :signed-integer)
  402.    (:register-trap #xA0DD :a0 pb :d0 8))
  403.  
  404. (deftrap _ppcendasync ((pb (:pointer :ppcendpbrec)))
  405.    (:d0 :signed-integer)
  406.    (:register-trap #xA4DD :a0 pb :d0 8))
  407.  
  408. (deftrap _ppcclose ((pb (:pointer :ppcclosepbrec)))
  409.    (:d0 :signed-integer)
  410.    (:register-trap #xA0DD :a0 pb :d0 9))
  411.  
  412. (deftrap _ppcclosesync ((pb (:pointer :ppcclosepbrec)))
  413.    (:d0 :signed-integer)
  414.    (:register-trap #xA0DD :a0 pb :d0 9))
  415.  
  416. (deftrap _ppccloseasync ((pb (:pointer :ppcclosepbrec)))
  417.    (:d0 :signed-integer)
  418.    (:register-trap #xA4DD :a0 pb :d0 9))
  419.  
  420. (deftrap _ipclistports ((pb (:pointer :ipclistportspbrec)))
  421.    (:d0 :signed-integer)
  422.    (:register-trap #xA0DD :a0 pb :d0 10))
  423.  
  424. (deftrap _ipclistportssync ((pb (:pointer :ipclistportspbrec)))
  425.    (:d0 :signed-integer)
  426.    (:register-trap #xA0DD :a0 pb :d0 10))
  427.  
  428. (deftrap _ipclistportsasync ((pb (:pointer :ipclistportspbrec)))
  429.    (:d0 :signed-integer)
  430.    (:register-trap #xA4DD :a0 pb :d0 10))
  431.  
  432. ; These next three traps are guesses.
  433. ; The documentation says that A0 points at a <gobblegobble>record, none of
  434. ; which is defined anywhere.
  435. (deftrap _deleteuseridentity ((userref :signed-long))
  436.    (:d0 :signed-integer)
  437.   (ccl:rlet ((userrefp :long userref))
  438.     (:register-trap #xA0DD :d0 12 :a0 userrefp)))
  439.  
  440. (deftrap _getdefaultuser ((userref (:pointer :signed-long)) (username (:pointer (:string 32))))
  441.    (:d0 :signed-integer)
  442.   (ccl::%stack-block ((params 8))
  443.     (%put-ptr params username)
  444.     (%put-ptr params userref 4)
  445.     (:register-trap #xA0DD :d0 13 :a0 params)))
  446.  
  447. (deftrap _startsecuresession ((pb (:pointer :ppcstartpbrec)) (username (:pointer (:string 32))) (usedefault :boolean) (allowguest :boolean) (guestselected (:pointer :boolean)) (prompt (:string 255)))
  448.    (:d0 :signed-integer)
  449.   (ccl::%stack-block ((params 20))
  450.     (%put-ptr params prompt)
  451.     (%put-ptr params guestselected 4)
  452.     (%put-word params allowguest 8)
  453.     (%put-word params usedefault 10)
  454.     (%put-ptr params username 12)
  455.     (%put-ptr params pb 16)
  456.     (:register-trap #xA0DD :d0 14 :a0 params)))
  457.  
  458. (deftrap _ppcbrowser ((prompt (:string 255)) (appllistlabel (:string 255)) (defaultspecified :boolean) (thelocation (:pointer :locationnamerec)) (theportinfo (:pointer :portinforec)) (portfilter :pointer) (thelocnbptype (:string 32)))
  459.    (:stack :signed-integer)
  460.    (:stack-trap #xA82B :d0 3328 prompt appllistlabel defaultspecified thelocation theportinfo portfilter thelocnbptype))
  461.  
  462. ; $ENDC                         ;  UsingPPCToolBox 
  463.  
  464. ; $IFC NOT UsingIncludes
  465.  
  466. ; $ENDC
  467.  
  468.  
  469. (export '($ppcremoteorigin $ppclocalorigin $ppcbystring $ppcbycreatorandtype
  470.           $ppcnbptypelocation $ppcnbplocation $ppcnolocation
  471.           $ppcservicerealtime))
  472. (provide-interface 'PPCTOOLBOX)
  473.